package cn.edu.sdjzu.xg.eagle.util;

import cn.edu.sdjzu.xg.eagle.entity.Pagination;
import cn.edu.sdjzu.xg.eagle.entity.Condition;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;

import java.util.List;


/**
 *  ControllerHelper 工具类
 *  功能：解析前端请求的 JSON 数据，提取分页信息与查询条件
 */

public class ControllerHelper {

    /**
     *  从请求的 JSON 对象中提取查询条件列表（conditionList）
     */

    public static List<Condition> getConditions(JSONObject jsonObject) {
        //获取名为 conditionList 的 JSON 数组
        JSONArray conditionListJsonArray = jsonObject.getJSONArray("conditions");
        List<Condition> conditionList = null;
        //获取的 JSON 数组不为空
        if (conditionListJsonArray != null) {
            //将 JSON 数组转换为 Java 对象
            conditionList = conditionListJsonArray.toJavaList(Condition.class);
        }
        return conditionList;
    }

    /**
     *  从请求的 JSON 对象中提取分页信息(Pagination)
     */

    public static Pagination getPagination(JSONObject req_jsonObj) {
        JSONObject pagination_jsonObj = req_jsonObj.getJSONObject("pagination");
        Pagination pagination = null;
        if (pagination_jsonObj != null) {
            pagination = pagination_jsonObj.toJavaObject(Pagination.class);
        }
        return pagination;
    }
}
